package it.unipg.bipod.web;

import it.unipg.bipod.applicationLogic.*;
import it.unipg.bipod.dataModel.*;

/**
 * DocenteBean raccoglie i bean che gestiscono le operazioni dei docenti.<br>
 * Fornisce accesso alle proprieta' bandiBean, datiBean e richiesteBean:
 * i Bean che gestiscono rispettivamente bandi, dati del docente e richieste
 * effettuate. DocenteBean inoltre espone un oggetto Docente con i dati del docente
 * ed un oggetto Registrazione con i dati della sua registrazione.<br>
 * Eventuali messaggi o errori vengono segnalati mediante i metodi forniti da DefaultBean.
 * 
 * @author Lorenzo Porzi
 * @see DefaultBean
 * @see DocenteBandiBean
 * @see DocenteDatiBean
 * @see DocenteRichiesteBean
 */
public class DocenteBean extends DefaultBean {
	private Docente docente; // Il docente
	private Registrazione registrazione; // La registrazione del docente
	
	// Bean dipendenti da DocenteBean
	private DocenteBandiBean bandiBean;
	private DocenteDatiBean datiBean;
	private DocenteRichiesteBean richiesteBean;
	private MessageBean messageBean;
	
	/**
	 * Costruisce un DocenteBean associato alla DocenteApplication fornita.
	 * 
	 * @param application la DocenteApplication da associare a questo DocenteBean.
	 */
	public DocenteBean(DocenteApplication application) {
		super();
		
		this.docente = application.getDocente();
		this.registrazione = application.getRegistrazione();
		this.bandiBean = new DocenteBandiBean(application);
		this.datiBean = new DocenteDatiBean(application);
		this.richiesteBean = new DocenteRichiesteBean(application);
		this.messageBean = new MessageBean(application);
	}
	
	/* ------------------------
	 * Getters per le proprietà
	 * ------------------------ */
	
	public Docente getDocente() {
		return docente;
	}
	
	public Registrazione getRegistrazione() {
		return registrazione;
	}
	
	/* ----------------------------
	 * Getters per i Bean secondari
	 * ---------------------------- */
	
	public DocenteBandiBean getBandiBean() {
		return bandiBean;
	}
	
	public DocenteDatiBean getDatiBean() {
		return datiBean;
	}
	
	public DocenteRichiesteBean getRichiesteBean() {
		return richiesteBean;
	}
	
	public MessageBean getMessageBean() {
		return messageBean;
	}
}
